Reland "SkRuntimeEffect: Test matrix inverse() intrinsic"

This reverts commit 72bd9e8664.

Bug: skia:10913
Bug: skia:11133
Change-Id: Id822569166c7c2d53c3af5685550ae00c0dcfe01
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/349058
Reviewed-by: Brian Osman <brianosman@google.com>
Commit-Queue: Brian Osman <brianosman@google.com>
This commit is contained in:
Brian Osman 2020-12-30 16:18:34 -05:00 committed by Skia Commit-Bot
parent 4f509345ab
commit 3b2fac6899
3 changed files with 82 additions and 23 deletions

View File

@ -289,25 +289,25 @@ DEF_SIMPLE_GM(runtime_intrinsics_geometric,
next_row(canvas);
}
#define SKSL_MATRIX_SELECTORS \
"inline float2 sel2(float x) {" \
" return float2(" \
" x < 0.5 ? 1 : 0," \
" x >= 0.5 ? 1 : 0);" \
"}" \
"inline float3 sel3(float x) {" \
" return float3(" \
" x < 0.33 ? 1 : 0," \
" x >= 0.33 && x < 0.66 ? 1 : 0," \
" x >= 0.66 ? 1 : 0);" \
"}" \
"inline float4 sel4(float x) {" \
" return float4(" \
" x < 0.25 ? 1 : 0," \
" x >= 0.25 && x < 0.5 ? 1 : 0," \
" x >= 0.5 && x < 0.75 ? 1 : 0," \
" x >= 0.75 ? 1 : 0);" \
"}"
#define SKSL_MATRIX_SELECTORS \
"inline float2 sel2(float x) {" \
" return float2(" \
" x < 0.5 ? 1 : 0," \
" x >= 0.5 ? 1 : 0);" \
"}" \
"inline float3 sel3(float x) {" \
" return float3(" \
" x < 0.33 ? 1 : 0," \
" x >= 0.33 && x < 0.66 ? 1 : 0," \
" x >= 0.66 ? 1 : 0);" \
"}" \
"inline float4 sel4(float x) {" \
" return float4(" \
" x < 0.25 ? 1 : 0," \
" x >= 0.25 && x < 0.5 ? 1 : 0," \
" x >= 0.5 && x < 0.75 ? 1 : 0," \
" x >= 0.75 ? 1 : 0);" \
"}"
// Shader for testing matrixCompMult intrinsic
static SkString make_matrix_comp_mult_sksl(int dim) {
@ -349,11 +349,49 @@ static void plot_matrix_comp_mult(SkCanvas* canvas,
next_column(canvas);
}
// Shader for testing inverse() intrinsic
static SkString make_matrix_inverse_sksl(int dim) {
return SkStringPrintf(
"uniform float scale; uniform float bias;"
"uniform float%dx%d m;" // dim, dim
SKSL_MATRIX_SELECTORS
"half4 main(float2 p) {"
" float%d colSel = sel%d(p.x);" // dim, dim
" float%d rowSel = sel%d(p.y);" // dim, dim
" float%d col = inverse(m) * colSel;" // dim
" float v = dot(col, rowSel) * scale + bias;"
" return v.xxx1;"
"}", dim, dim, dim, dim, dim, dim, dim);
}
template <int N>
static void plot_matrix_inverse(SkCanvas* canvas, std::array<float, N*N> mtx, const char* label) {
canvas->save();
draw_label(canvas, label);
auto [effect, error] = SkRuntimeEffect::Make(make_matrix_inverse_sksl(N));
if (!effect) {
SkDebugf("Error: %s\n", error.c_str());
return;
}
SkRuntimeShaderBuilder builder(effect);
builder.uniform("scale") = 0.5f;
builder.uniform("bias") = 0.5f;
builder.uniform("m") = mtx;
draw_shader(canvas, builder.makeShader(/*localMatrix=*/nullptr, /*isOpaque=*/false));
canvas->restore();
next_column(canvas);
}
// The OpenGL ES Shading Language, Version 1.00, Section 8.5
DEF_SIMPLE_GM(runtime_intrinsics_matrix,
canvas,
columns_to_width(3),
rows_to_height(1)) {
rows_to_height(2)) {
canvas->translate(kPadding, kPadding);
canvas->save();
@ -375,6 +413,26 @@ DEF_SIMPLE_GM(runtime_intrinsics_matrix,
0.03f, -1.00f, -1.0f, -0.5f, 1.7f, 0.66f},
"compMult(4x4)");
next_row(canvas);
// Random, invertible matrices where the elements of inverse(m) lie in [-1, 1]
plot_matrix_inverse<2>(canvas,
{ 1.20f, 0.68f,
-0.27f, -1.55f},
"inverse(2x2)");
plot_matrix_inverse<3>(canvas,
{-1.13f, -2.96f, -0.14f,
1.45f, -1.88f, -1.02f,
-2.54f, -2.58f, -1.17f},
"inverse(3x3)");
plot_matrix_inverse<4>(canvas,
{-1.51f, -3.95f, -0.19f, 1.93f,
-2.51f, -1.35f, -3.39f, -3.45f,
-1.56f, 1.61f, -0.22f, -1.08f,
-2.81f, -2.14f, -0.09f, 3.00f},
"inverse(4x4)");
next_row(canvas);
}
/*

View File

@ -829,7 +829,7 @@ func (b *taskBuilder) dmFlags(internalHardwareLabel string) {
skip("_", "gm", "_", "encode-platform")
}
if b.model("AndroidOne") && b.gpu() { // skia:4697, skia:4704, skia:4694, skia:4705
if b.model("AndroidOne") && b.gpu() { // skia:4697, skia:4704, skia:4694, skia:4705, skia:11133
skip("_", "gm", "_", "bigblurs")
skip("_", "gm", "_", "strict_constraint_no_red_allowed")
skip("_", "gm", "_", "fast_constraint_red_is_allowed")
@ -841,6 +841,7 @@ func (b *taskBuilder) dmFlags(internalHardwareLabel string) {
skip("_", "gm", "_", "imageresizetiled")
skip("_", "gm", "_", "matrixconvolution")
skip("_", "gm", "_", "strokedlines")
skip("_", "gm", "_", "runtime_intrinsics_matrix")
if sampleCount > 0 {
glMsaaConfig := fmt.Sprintf("%smsaa%d", glPrefix, sampleCount)
skip(glMsaaConfig, "gm", "_", "imageblurtiled")

View File

@ -27025,7 +27025,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\\\",\\\"glessrgb\\\",\\\"glesmsaa4\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"svg\\\",\\\"--skip\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"ProcessorCloneTest\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"Programs\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"ProcessorOptimizationValidationTest\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"glessrgb\\\",\\\"image\\\",\\\"_\\\",\\\"_\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"GrStyledShape\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"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\\\",\\\"glesmsaa4\\\",\\\"gm\\\",\\\"_\\\",\\\"imageblurtiled\\\",\\\"glesmsaa4\\\",\\\"gm\\\",\\\"_\\\",\\\"imagefiltersbase\\\",\\\"--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://storage.googleapis.com/skia-infra-gm/hash_files/gold-prod-hashes.txt\",\"images\":\"true\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"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\\\",\\\"glessrgb\\\",\\\"glesmsaa4\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"svg\\\",\\\"--skip\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"ProcessorCloneTest\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"Programs\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"ProcessorOptimizationValidationTest\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"glessrgb\\\",\\\"image\\\",\\\"_\\\",\\\"_\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"GrStyledShape\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"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\\\",\\\"--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://storage.googleapis.com/skia-infra-gm/hash_files/gold-prod-hashes.txt\",\"images\":\"true\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"test\",\"task_id\":\"<(TASK_ID)\"}",
"skia"
],
"dependencies": [
@ -27092,7 +27092,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\\\",\\\"glessrgb\\\",\\\"glesmsaa4\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"svg\\\",\\\"--skip\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"ProcessorCloneTest\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"Programs\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"ProcessorOptimizationValidationTest\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"glessrgb\\\",\\\"image\\\",\\\"_\\\",\\\"_\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"GrStyledShape\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"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\\\",\\\"glesmsaa4\\\",\\\"gm\\\",\\\"_\\\",\\\"imageblurtiled\\\",\\\"glesmsaa4\\\",\\\"gm\\\",\\\"_\\\",\\\"imagefiltersbase\\\",\\\"--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://storage.googleapis.com/skia-infra-gm/hash_files/gold-prod-hashes.txt\",\"images\":\"true\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"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\\\",\\\"glessrgb\\\",\\\"glesmsaa4\\\",\\\"--src\\\",\\\"tests\\\",\\\"gm\\\",\\\"image\\\",\\\"colorImage\\\",\\\"svg\\\",\\\"--skip\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"ProcessorCloneTest\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"Programs\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"ProcessorOptimizationValidationTest\\\",\\\"_\\\",\\\"svg\\\",\\\"_\\\",\\\"svgparse_\\\",\\\"glessrgb\\\",\\\"image\\\",\\\"_\\\",\\\"_\\\",\\\"_\\\",\\\"image\\\",\\\"gen_platf\\\",\\\"error\\\",\\\"_\\\",\\\"test\\\",\\\"_\\\",\\\"GrStyledShape\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced1.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced2.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\"interlaced3.png\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".arw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".cr2\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".dng\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nef\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".nrw\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".orf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".raf\\\",\\\"_\\\",\\\"image\\\",\\\"_\\\",\\\".rw2\\\",\\\"_\\\",\\\"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\\\",\\\"--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://storage.googleapis.com/skia-infra-gm/hash_files/gold-prod-hashes.txt\",\"images\":\"true\",\"patch_issue\":\"<(ISSUE_INT)\",\"patch_ref\":\"<(PATCH_REF)\",\"patch_repo\":\"<(PATCH_REPO)\",\"patch_set\":\"<(PATCHSET_INT)\",\"patch_storage\":\"<(PATCH_STORAGE)\",\"repository\":\"<(REPO)\",\"resources\":\"true\",\"revision\":\"<(REVISION)\",\"skps\":\"true\",\"svgs\":\"true\",\"swarm_out_dir\":\"test\",\"task_id\":\"<(TASK_ID)\"}",
"skia"
],
"dependencies": [